package main

import "fmt"
// 定义一个接口
// 接口是一个规范
// 在接口里面写interface方法
type Usber interface{
	start()
	stop()
}
// 想要手机和相机实现这个接口 必须要通过结构体或者自定义类型实现
type Phone struct{
	Name string
	camera
}
// 手机要实现usb接口的话必须要实现usb接口中的所有方法
func (p Phone) start(){
	fmt.Println(p.Name,"启动")
}
func (p Phone) stop(){
	fmt.Println(p.Name,"关机")
}
type camera struct{
}
func (c camera) start(){
	fmt.Println("启动")
}
func (c camera) stop(){
	fmt.Println("关机")
}
// 照相机自己的方法
func (c camera) run(){
	fmt.Println("相机")
}
func main(){

	p :=Phone{
		Name:"华为手机",
	}
	p.start()
	var p1 Usber //golang中接口就是一个数据类型
	p1 =p //表示手机实现usb接口
	p1.start()
	// 实例化结构体
	c :=camera{}
	var c1 Usber =c //表示相机实现usb接口
	c1.start()
	c.run()
}